using Headsight.BPMN2WF.BPMN.Model;
using Headsight.BPMN2WF.Transformation.Transformers.Additions;

namespace Headsight.BPMN2WF.Transformation.BPMN2TransformerMappings.Additions
{
    /// <summary>
    /// <see cref="IBPMN2WFTransformations"/> implementation wrapping each 
    /// delivered <see cref="IBPMN2WFTransformation"/> into an instance of
    /// <see cref="BPMN2WFTransformationLayouter"/> which is responsible
    /// for basically carry over <i>BPMN model visualization information</i> to
    /// created <i>WF counterparts</i>.
    /// </summary>
    public class BPMN2WFTransformationsExceptionHandlerWrapper : BPMN2WFTransformationsDelegateBaseImpl
    {
        public BPMN2WFTransformationsExceptionHandlerWrapper(IBPMN2WFTransformations @delegate)
            : base(@delegate)
        {
        }

        public override IBPMN2WFTransformation Get(BPMNFlowNode flowNode)
        {
            return new BPMN2WFTransformationExceptionHandler(Delegate.Get(flowNode));
        }
    }
}